﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Sigecov.Models;
namespace Sigecov.Formularios
{
    public partial class FrmGerencialTransportadora : Form
    {
        public FrmGerencialTransportadora()
        {
            InitializeComponent();
        }

        private void FrmGerencialTransportadora_Load(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 9;
            Transportadora.ListarTransportadora(dgvTransportadora);
        }

        private void btnAtualizarTransportadoras_Click(object sender, EventArgs e)
        {
            Transportadora.ListarTransportadora(dgvTransportadora);
        }

        private void btnAlterarTransportadora_Click(object sender, EventArgs e)
        {
            if (dgvTransportadora.Rows.Count > 0)
            {
                FrmBase._idAcao = Convert.ToInt32(dgvTransportadora.SelectedCells[0].Value);
                FrmBase._tipoOperacao = "ALTERAR";
                FrmTransportadora transportadora = new FrmTransportadora();
                DialogResult confirmacao = transportadora.ShowDialog();
                if (confirmacao.ToString().ToUpper() == "CANCEL")
                    Transportadora.ListarTransportadora(dgvTransportadora);   
            }
            else
                MessageBox.Show("Nenhum item foi selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void btnNovaTransportadora_Click(object sender, EventArgs e)
        {
            FrmBase._tipoOperacao = "INCLUIR";
            FrmTransportadora transportadora = new FrmTransportadora();
            DialogResult confirmacao = transportadora.ShowDialog();
            if (confirmacao.ToString().ToUpper() == "CANCEL")
                Transportadora.ListarTransportadora(dgvTransportadora);  
        }

        private void btnDeletarTransportadora_Click(object sender, EventArgs e)
        {
            if (dgvTransportadora.Rows.Count > 0)
            {
                FrmBase._idAcao = Convert.ToInt32(dgvTransportadora.SelectedCells[0].Value);
                FrmBase._tipoOperacao = "DELETAR";
                FrmTransportadora transportadora = new FrmTransportadora();
                DialogResult confirmacao = transportadora.ShowDialog();
                if (confirmacao.ToString().ToUpper() == "CANCEL")
                    Transportadora.ListarTransportadora(dgvTransportadora);  
            }
            else
                MessageBox.Show("Nenhum item foi selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        }

        private void txtPesquisa_TextChanged(object sender, EventArgs e)
        {
            if (!(string.IsNullOrWhiteSpace(txtPesquisa.Text)))
            {
                using (SigecovContext DB = new SigecovContext())
                {
                    if (rdbCodigo.Checked)
                    {
                        int _codigo = Convert.ToInt32(txtPesquisa.Text);
                        dgvTransportadora.DataSource = DB.Transportadoras.Select(t => new { Código = t.traId, Nome = t.traNome, Telefone = t.traTelefone, })
                            .Where(t => t.Código == _codigo).OrderBy(t => t.Nome).ToList();
                    }
                    else
                    {
                        dgvTransportadora.DataSource = DB.Transportadoras.Select(t => new { Código = t.traId, Nome = t.traNome, Telefone = t.traTelefone, })
                            .Where(t => t.Nome.Contains(txtPesquisa.Text)).OrderBy(t => t.Nome).ToList();
                    }
                }
            }
            else
                Transportadora.ListarTransportadora(dgvTransportadora);   
        }

        private void txtPesquisa_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (rdbCodigo.Checked)
                Ferramenta.SomenteNumero(e);
        }

        private void rdbCodigo_CheckedChanged(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 9;
            txtPesquisa.Clear();
        }

        private void rdbNome_CheckedChanged(object sender, EventArgs e)
        {
            txtPesquisa.MaxLength = 32767;
            txtPesquisa.Clear();
        }
    }
}
